Typically, users (i.e. people or other systems) engage computers to facilitate information processing. A computer operating system enables and facilitates users to access and operate computer information technology. Somewhat like how automobile operator interfaces (e.g. steering wheels and gearshifts) facilitate the access and operation of automobile resources and functionality, computer user interfaces facilitate (e.g. windows and cursors) the access and operation of computer hardware and operating system resources and functionality. Graphical user interfaces such as the Apple Macintosh™ Operating System or Microsoft's Windows™ 98 provide a baseline and means of accessing and displaying information. Such consumer oriented operating systems enable users to access and operate computer information technology by providing an integrated user interface. Other operating systems such as UNIX do not provide integrated graphical user interfaces and instead allow various interfaces to be employed such as command line interfaces (e.g. C-shell) and graphical user interfaces (e.g. X windows).
The proliferation and expansion of computer systems, databases, the Internet, and particularly the World Wide Web (the web), have resulted in a vast and diverse collection of information. Various user interfaces that facilitate the interaction of people with computer systems are currently in use. Tim Bemers-Lee originally developed an information navigation interface called WorldWideWeb.app, i.e. the web, in late 1990 on NeXT Computer Inc.'s operating system, NeXTSTEP, at the European Organization for Nuclear Research (CERN, a particle physics center). Subsequently, information navigation interfaces, i.e. web browsers, have become widely available on almost every computer operating system platform.
Generally, the web is the manifestation and result of a synergetic interoperation between user interfaces (e.g. web browsers), servers, distributed information, protocols, and specifications. Web browsers were designed to facilitate navigation and access to information, while information servers were designed to facilitate provision of information. Typically, web browsers and information servers are disposed in communication with one another through a communications network; i.e. information servers typically provide information to users employing web browsers for navigating and accessing information about the web. Microsoft's Internet Explorer™ and Netscape Navigator™ are examples of web browsers. In addition, navigation user interface devices such as WebTV have also been implemented to facilitate web navigation. Microsoft's Information Server and Apache are examples of information servers.
Information on the web typically is provided through and distributed employing a HyperText Markup Language (HTML) specification. HTML documents are also commonly referred to as web pages. HTML documents may contain links to other HTML documents that can be traversed by users of web browsers (i.e. user interfaces) by selecting the links, which are commonly highlighted by color and underlining. HTML has been extended and upgraded resulting in new standards such as Extensible Markup Language (XML) and other such variants, which provide greater functionality. HTML's progenitors were Standardized General Markup Language (SGML), which in turn was preceded by the General Markup Language (GML). SGML is generally regarded as a more functional superset of HTML and first appeared in 1980 as a draft by the Graphic Communications Association (GCA) to the American National Standards Institute (ANSI) (GCA 101-1983); it was adopted as an international standard by the International Standards Organization (ISO) in 1986 (ISO 8879:1986). Charles Goldfarb, Edward Mosher, and Raymond Lorie invented the GML at IBM to facilitate law office information system integration and improve document processing. GML itself was inspired by William Tunnicliffe, chairman of the CGA, during a presentation on the topic of “the separation of the information content of documents from their format” at the Canadian Printing Office in September, 1967.
HTML documents typically are accessed through navigation devices via a HyperText Transfer Protocol (HTTP). HTTP is a stateless application-level protocol for distributed, collaborative, hypermedia information systems, and is further described on the W3C web site entitled HTTP Specifications and Drafts (available at www.w3.org/Protocols/Specs.html). Microsoft's Information Server allows the tracking of a state with a built-in session object.
The basic web browsing paradigm presents users with a scrolling page full of text, pictures, and various other forms of information media such as movies and links to other documents. Web browsers allow users to access uniquely identified HTML documents on the web by entering a navigation location in a Universal Resource Locator (URL) and employing HTTP as a transfer protocol to provide and obtain web pages. Typically, a user provides the address of a desired HTML document into a URL (either directly or through the selection of links in an already viewed HTML document).
The onset of the web has brought on a tremendous increase in transactions occurring through insecure communications networks such as the Internet. Sending information through such networks allows for the possibility of data corruption. Database systems and other transactional systems benefit from the validation of data. Increasingly, such transactions occur via web page forms. In many instances, it is critical that data acquired over a communications network be acquired in a consistent, predictable, and reliable way. Otherwise, a host of problems may result such as failed transactions, application errors, incorrect orders, irritated customers, and other such consequences.
Validation is a way to increase the reliability of data sent over a communications network. Existing validation techniques are commonly employed to ensure the integrity of data against incidents such as transmission disruptions or erroneous data entry. Existing validation logic includes, for example, pattern matching logic to ensure obtained data is in a proper form, and check sum techniques to ensure against data corruption.
The most common way to perform validations on a form has been to write a multitude of small JavaScript™ 1.0 functions that are downloaded to the client and then called right before a form is submitted. The validating logic was imbedded into the web page itself. A more recent and generic technique was developed to validate data from a form by describing the validations for each field and its dependencies and then calling generic validation procedures. The validation procedures are provided in an included file.